﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace FiyatDegisikligi
{
    public partial class frmListe : Form
    {
        public string StokKod { get; set; }
        public string StokAdi { get; set; }

        public enum ListeTipleri:byte
        {
            StokKodundan,
            StokAdindan,
            AnaGrup,
            AltGrup,
            AnaSaglayici,
            Uretici,
            Reyon,
            Ambalaj,
            marka,
            muhasebe,
            sektor,
            kategori,
            beden,
            renk,
            model,
            sezon,
            hammadde,
            prim,
            kalite,
            paket
        }
        public ListeTipleri ListeTipi { get; set; }
        public string Filtre { get; set; }

        public frmListe()
        {
            InitializeComponent();
            this.Load += new EventHandler(frmListe_Load);
        }

        void frmListe_Load(object sender, EventArgs e)
        {
            this.Filtre = this.Filtre.Replace('*', '%');
            if (string.IsNullOrEmpty(this.Filtre)) this.Filtre = "%";

            switch (ListeTipi)
            {
                case ListeTipleri.StokAdindan:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     sto_kod AS [Stok Kodu], sto_isim AS [Stok Adı] FROM         STOKLAR WHERE     (sto_isim LIKE '{0}')", Filtre));
                    break;
                case ListeTipleri.StokKodundan:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     sto_kod AS [Stok Kodu], sto_isim AS [Stok Adı] FROM         STOKLAR WHERE     (sto_kod LIKE '{0}')", Filtre));
                    break;
                case ListeTipleri.AnaGrup:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     san_kod as [Ana Grup Kodu],san_isim as [Ana Grup Adı]   FROM STOK_ANA_GRUPLARI", this.Filtre));
                    break;
                case ListeTipleri.AltGrup:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     sta_kod as [Alt Grup Kodu],sta_isim as [Alt Grup Adı] from STOK_ALT_GRUPLARI", this.Filtre));
                    break;
                case ListeTipleri.AnaSaglayici:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     cari_kod as [Cari Kodu],cari_unvan1 as [Cari Unvani] from CARI_HESAPLAR", this.Filtre));
                    break;
                case ListeTipleri.Uretici:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     urt_kod as [Üretici Kodu],urt_ismi as [Üretici Adı] from STOK_URETICILERI", this.Filtre));
                    break;
                case ListeTipleri.Reyon:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     ryn_kod as [Reyon Kodu],ryn_ismi as [Reyon Adı] from STOK_REYONLARI", this.Filtre));
                    break;
                case ListeTipleri.Ambalaj:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     amb_kod as [Ambalaj Kodu],amb_ismi as [Ambalaj Adı] from STOK_AMBALAJLARI", this.Filtre));
                    break;
                case ListeTipleri.marka:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     mrk_kod as [Marka Kodu],mrk_ismi as [Marka Adı] from STOK_MARKALARI", this.Filtre));
                    break;
                case ListeTipleri.muhasebe:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     stmuh_kod as [Muhasebe Kod],stmuh_ismi from STOK_MUHASEBE_GRUPLARI", this.Filtre));
                    break;
                case ListeTipleri.sektor:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     sktr_kod as [Sektör Kodu],sktr_ismi as [Sektör Adı] from STOK_SEKTORLERI", this.Filtre));
                    break;
                case ListeTipleri.kategori:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     ktg_kod as [Kategori Kodu],ktg_isim as [Kategori Adı] from STOK_KATEGORILERI", this.Filtre));
                    break;
                case ListeTipleri.beden:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     bdn_kodu as [Beden Kodu],bdn_ismi as [Beden Adı] from STOK_BEDEN_TANIMLARI", this.Filtre));
                    break;
                case ListeTipleri.renk:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     rnk_kodu as [Renk Kodu],rnk_ismi as [Renk Adı] from STOK_RENK_TANIMLARI", this.Filtre));
                    break;
                case ListeTipleri.model:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     mdl_kodu as [Model Kodu],mdl_ismi as [Model Adı] from STOK_MODEL_TANIMLARI", this.Filtre));
                    break;
                case ListeTipleri.sezon:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     ysn_kodu as [Sezon Kodu],ysn_ismi as [Sezon Adı] from STOK_YILSEZON_TANIMLARI", this.Filtre));
                    break;
                case ListeTipleri.hammadde:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     ahm_kodu as [Hammadde Kodu],ahm_ismi as [Hammadde Adı] from STOK_ANAHAMMADDELERI", this.Filtre));
                    break;
                case ListeTipleri.prim:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     prim_kod as [Prim Kodu],prim_adi as [Prim İsmi] from STOK_PRIM_TANIMLARI", this.Filtre));
                    break;
                case ListeTipleri.kalite:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     KKon_kod as [Kalite Kontrol Kodu],KKon_ismi as [Kalite Kontrol Adı] from STOK_KALITE_KONTROL_TANIMLARI", this.Filtre));
                    break;
                case ListeTipleri.paket:
                    gridControl1.DataSource = DataLayer.Get.Fill(string.Format("SELECT     pak_kod as [Paket Kodu],pak_stokkod as [Stok Kodu] from STOK_PAKET_TANIMLARI", this.Filtre));
                    break;
                default:
                    break;
            }
            gridView1.BestFitColumns();
        }

        private void gridControl1_DoubleClick(object sender, EventArgs e)
        {
            if (gridView1.RowCount > 0)
            {
                this.StokKod = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[0]).ToString();
                this.StokAdi = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[1]).ToString();
                this.DialogResult = DialogResult.OK;
            }
            this.Close();
        }

        private void gridControl1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (gridView1.RowCount > 0)
                {
                    this.StokKod = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[0]).ToString();
                    this.StokAdi = gridView1.GetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns[1]).ToString();
                    this.DialogResult = DialogResult.OK;
                }
                this.Close();
            }
        }


    }
}
